# Text2Vec Base Chinese 昇腾910B Docker镜像
FROM quay.io/ascend/vllm-ascend:v0.11.0rc0

# 设置工作目录
WORKDIR /app

# 设置环境变量
ENV PYTHONUNBUFFERED=1
ENV DEBIAN_FRONTEND=noninteractive
ENV PYTHONPATH=/app
ENV TORCH_DEVICE_BACKEND_AUTOLOAD=0

# 设置Ascend CANN库路径（如果挂载了宿主机目录，这些路径会自动生效）
# 注意：这些路径在运行时通过卷挂载从宿主机提供
# 包含所有可能的库路径，确保能找到 libascend_hal.so
ENV LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64:/usr/local/Ascend/driver/lib64/stub:/usr/local/Ascend/add-ons:/usr/local/Ascend/driver/lib:$LD_LIBRARY_PATH
ENV ASCEND_RT_VISIBLE_DEVICES=0

# 安装系统依赖
RUN apt-get update && apt-get install -y \
    git \
    wget \
    curl \
    && rm -rf /var/lib/apt/lists/*

# 验证Python版本（基础镜像已包含Python 3.10）
RUN python3 --version && \
    python3 -m pip --version

# 配置pip使用清华源
RUN python3 -m pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple && \
    python3 -m pip config set global.trusted-host pypi.tuna.tsinghua.edu.cn

# 升级pip
RUN python3 -m pip install --upgrade pip setuptools wheel

# 注意：基础镜像已包含PyTorch和Torch-NPU，如需特定版本可重新安装
# RUN python3 -m pip install torch==2.1.0 torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu && \
#     python3 -m pip install torch-npu==2.1.0 --index-url https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/py-pkg/

# 复制requirements文件
COPY requirements.txt .

# 安装Python依赖（使用清华源）
RUN python3 -m pip install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn

# 复制应用代码
COPY api/ ./api/
COPY config/ ./config/

# 创建必要的目录
RUN mkdir -p /app/models /app/logs

# 设置权限
RUN chmod -R 755 /app

# 暴露端口
EXPOSE 8000

# 健康检查
HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
    CMD curl -f http://localhost:8000/health || exit 1

# 启动命令
CMD ["python3", "-m", "uvicorn", "api.main:app", "--host", "0.0.0.0", "--port", "8000", "--app-dir", "/app"]


